package org.oschina.handler.validator.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.oschina.handler.validator.IFilter;

/**
 * 验证字段注解
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidateField {

	/**
	 * 是否验证
	 * @return
	 */
	public boolean validate() default true;
	
	/**
	 * 名称
	 * @return
	 */
	public String name() default "";
	
	/**
	 * 是否验证值
	 * @return
	 */
	public boolean validateValue() default false;
	
	/**
	 * 是否不能为空
	 * @return
	 */
	public boolean notNull() default true;
	
	/**
	 * 是否必须为空
	 * @return
	 */
	public boolean mustNull() default false;

	/**
	 * 过滤器
	 * @return
	 */
	public Class<? extends IFilter>[] filter() default {};
	
	/**
	 * 最小值
	 */
	public long min() default 1L;
	
	/**
	 * 最大值
	 */
	public long max() default -1L;
}